﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
using Teigha.Core;

namespace Teigha.TD
{
	public class OdDbPlotSettings : OdDbObject
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdDbPlotSettings(IntPtr cPtr, bool cMemoryOwn) : base(TD_DbPINVOKE.OdDbPlotSettings_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdDbPlotSettings obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdDbPlotSettings()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							TD_DbPINVOKE.delete_OdDbPlotSettings(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public new static OdDbPlotSettings cast(OdRxObject pObj)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbPlotSettings_cast(OdRxObject.getCPtr(pObj));
			OdDbPlotSettings result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbPlotSettings)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbPlotSettings)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbPlotSettings)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdRxClass desc()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbPlotSettings_desc(), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxClass isA()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbPlotSettings_isA(this.swigCPtr), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxObject queryX(OdRxClass protocolClass)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbPlotSettings_queryX(this.swigCPtr, OdRxClass.getCPtr(protocolClass)), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdDbPlotSettings createObject()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbPlotSettings_createObject();
			OdDbPlotSettings result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbPlotSettings)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbPlotSettings)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbPlotSettings)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void addToPlotSettingsDict(OdDbDatabase pDb)
		{
			TD_DbPINVOKE.OdDbPlotSettings_addToPlotSettingsDict(this.swigCPtr, OdDbDatabase.getCPtr(pDb));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public string getPlotSettingsName()
		{
			string result = TD_DbPINVOKE.OdDbPlotSettings_getPlotSettingsName(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setPlotSettingsName(string plotSettingsName)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setPlotSettingsName(this.swigCPtr, plotSettingsName);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public string getPlotCfgName()
		{
			string result = TD_DbPINVOKE.OdDbPlotSettings_getPlotCfgName(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void getPlotPaperMargins(out double leftMargin, out double bottomMargin, out double rightMargin, out double topMargin)
		{
			TD_DbPINVOKE.OdDbPlotSettings_getPlotPaperMargins(this.swigCPtr, out leftMargin, out bottomMargin, out rightMargin, out topMargin);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void getPlotPaperSize(out double paperWidth, out double paperHeight)
		{
			TD_DbPINVOKE.OdDbPlotSettings_getPlotPaperSize(this.swigCPtr, out paperWidth, out paperHeight);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public string getCanonicalMediaName()
		{
			string result = TD_DbPINVOKE.OdDbPlotSettings_getCanonicalMediaName(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void getPlotOrigin(out double xCoordinate, out double yCoordinate)
		{
			TD_DbPINVOKE.OdDbPlotSettings_getPlotOrigin(this.swigCPtr, out xCoordinate, out yCoordinate);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdDbPlotSettings.PlotPaperUnits plotPaperUnits()
		{
			OdDbPlotSettings.PlotPaperUnits result = (OdDbPlotSettings.PlotPaperUnits)TD_DbPINVOKE.OdDbPlotSettings_plotPaperUnits(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool plotViewportBorders()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_plotViewportBorders(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setPlotViewportBorders(bool plotViewportBorders)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setPlotViewportBorders(this.swigCPtr, plotViewportBorders);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool plotPlotStyles()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_plotPlotStyles(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setPlotPlotStyles(bool plotPlotStyles)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setPlotPlotStyles(this.swigCPtr, plotPlotStyles);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool showPlotStyles()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_showPlotStyles(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setShowPlotStyles(bool showPlotStyles)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setShowPlotStyles(this.swigCPtr, showPlotStyles);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdDbPlotSettings.PlotRotation plotRotation()
		{
			OdDbPlotSettings.PlotRotation result = (OdDbPlotSettings.PlotRotation)TD_DbPINVOKE.OdDbPlotSettings_plotRotation(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool plotCentered()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_plotCentered(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool plotHidden()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_plotHidden(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setPlotHidden(bool plotHidden)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setPlotHidden(this.swigCPtr, plotHidden);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdDbPlotSettings.PlotType plotType()
		{
			OdDbPlotSettings.PlotType result = (OdDbPlotSettings.PlotType)TD_DbPINVOKE.OdDbPlotSettings_plotType(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void getPlotWindowArea(out double xMin, out double yMin, out double xMax, out double yMax)
		{
			TD_DbPINVOKE.OdDbPlotSettings_getPlotWindowArea(this.swigCPtr, out xMin, out yMin, out xMax, out yMax);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public string getPlotViewName()
		{
			string result = TD_DbPINVOKE.OdDbPlotSettings_getPlotViewName(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool useStandardScale()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_useStandardScale(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void getCustomPrintScale(out double numerator, out double denominator)
		{
			TD_DbPINVOKE.OdDbPlotSettings_getCustomPrintScale(this.swigCPtr, out numerator, out denominator);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public string getCurrentStyleSheet()
		{
			string result = TD_DbPINVOKE.OdDbPlotSettings_getCurrentStyleSheet(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdDbPlotSettings.StdScaleType stdScaleType()
		{
			OdDbPlotSettings.StdScaleType result = (OdDbPlotSettings.StdScaleType)TD_DbPINVOKE.OdDbPlotSettings_stdScaleType(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void getStdScale(out double standardScale)
		{
			TD_DbPINVOKE.OdDbPlotSettings_getStdScale(this.swigCPtr, out standardScale);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool scaleLineweights()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_scaleLineweights(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setScaleLineweights(bool scaleLineweights)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setScaleLineweights(this.swigCPtr, scaleLineweights);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool printLineweights()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_printLineweights(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setPrintLineweights(bool printLineweights)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setPrintLineweights(this.swigCPtr, printLineweights);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool drawViewportsFirst()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_drawViewportsFirst(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setDrawViewportsFirst(bool drawViewportsFirst)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setDrawViewportsFirst(this.swigCPtr, drawViewportsFirst);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool modelType()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_modelType(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setModelType(bool modelType)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setModelType(this.swigCPtr, modelType);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public double getTopMargin()
		{
			double result = TD_DbPINVOKE.OdDbPlotSettings_getTopMargin(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public double getRightMargin()
		{
			double result = TD_DbPINVOKE.OdDbPlotSettings_getRightMargin(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public double getBottomMargin()
		{
			double result = TD_DbPINVOKE.OdDbPlotSettings_getBottomMargin(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public double getLeftMargin()
		{
			double result = TD_DbPINVOKE.OdDbPlotSettings_getLeftMargin(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdGePoint2d getPaperImageOrigin()
		{
			OdGePoint2d result = new OdGePoint2d(TD_DbPINVOKE.OdDbPlotSettings_getPaperImageOrigin(this.swigCPtr), true);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setPaperImageOrigin(OdGePoint2d paperImageOrigin)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setPaperImageOrigin(this.swigCPtr, OdGePoint2d.getCPtr(paperImageOrigin));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdDbPlotSettings.ShadePlotType shadePlot()
		{
			OdDbPlotSettings.ShadePlotType result = (OdDbPlotSettings.ShadePlotType)TD_DbPINVOKE.OdDbPlotSettings_shadePlot(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdResult setShadePlot(OdDbPlotSettings.ShadePlotType shadePlot)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbPlotSettings_setShadePlot__SWIG_0(this.swigCPtr, (int)shadePlot);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdDbPlotSettings.ShadePlotResLevel shadePlotResLevel()
		{
			OdDbPlotSettings.ShadePlotResLevel result = (OdDbPlotSettings.ShadePlotResLevel)TD_DbPINVOKE.OdDbPlotSettings_shadePlotResLevel(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setShadePlotResLevel(OdDbPlotSettings.ShadePlotResLevel shadePlotResLevel)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setShadePlotResLevel(this.swigCPtr, (int)shadePlotResLevel);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public short shadePlotCustomDPI()
		{
			short result = TD_DbPINVOKE.OdDbPlotSettings_shadePlotCustomDPI(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setShadePlotCustomDPI(short shadePlotCustomDPI)
		{
			TD_DbPINVOKE.OdDbPlotSettings_setShadePlotCustomDPI(this.swigCPtr, shadePlotCustomDPI);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdResult subGetClassID(IntPtr pClsid)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbPlotSettings_subGetClassID(this.swigCPtr, pClsid);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult dwgInFields(OdDbDwgFiler pFiler)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbPlotSettings_dwgInFields(this.swigCPtr, OdDbDwgFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void dwgOutFields(OdDbDwgFiler pFiler)
		{
			TD_DbPINVOKE.OdDbPlotSettings_dwgOutFields(this.swigCPtr, OdDbDwgFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdResult dxfInFields(OdDbDxfFiler pFiler)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbPlotSettings_dxfInFields(this.swigCPtr, OdDbDxfFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void dxfOutFields(OdDbDxfFiler pFiler)
		{
			TD_DbPINVOKE.OdDbPlotSettings_dxfOutFields(this.swigCPtr, OdDbDxfFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void subClose()
		{
			TD_DbPINVOKE.OdDbPlotSettings_subClose(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdResult subErase(bool erasing)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbPlotSettings_subErase(this.swigCPtr, erasing);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void subHandOverTo(OdDbObject pNewObject)
		{
			TD_DbPINVOKE.OdDbPlotSettings_subHandOverTo(this.swigCPtr, OdDbObject.getCPtr(pNewObject));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void copyFrom(OdRxObject pSource)
		{
			TD_DbPINVOKE.OdDbPlotSettings_copyFrom(this.swigCPtr, OdRxObject.getCPtr(pSource));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdDbObjectId shadePlotId()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr cPtr = TD_DbPINVOKE.OdDbPlotSettings_shadePlotId(this.swigCPtr);
			OdDbObjectId result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(new OdDbObjectId(cPtr, true));
				result = new OdDbObjectId(cPtr, false);
			}
			else
			{
				result = new OdDbObjectId(cPtr, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdResult setShadePlot(OdDbPlotSettings.ShadePlotType type, OdDbObjectId shadePlotId)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbPlotSettings_setShadePlot__SWIG_1(this.swigCPtr, (int)type, OdDbObjectId.getCPtr(shadePlotId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool plotWireframe()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_plotWireframe(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool plotAsRaster()
		{
			bool result = TD_DbPINVOKE.OdDbPlotSettings_plotAsRaster(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		private object locker = new object();

		private HandleRef swigCPtr;

		public enum PlotPaperUnits
		{
			kInches,
			kMillimeters,
			kPixels
		}

		public enum PlotRotation
		{
			k0degrees,
			k90degrees,
			k180degrees,
			k270degrees
		}

		public enum PlotType
		{
			kDisplay,
			kExtents,
			kLimits,
			kView,
			kWindow,
			kLayout
		}

		public enum StdScaleType
		{
			kScaleToFit,
			k1_128in_1ft,
			k1_64in_1ft,
			k1_32in_1ft,
			k1_16in_1ft,
			k3_32in_1ft,
			k1_8in_1ft,
			k3_16in_1ft,
			k1_4in_1ft,
			k3_8in_1ft,
			k1_2in_1ft,
			k3_4in_1ft,
			k1in_1ft,
			k3in_1ft,
			k6in_1ft,
			k1ft_1ft,
			k1_1,
			k1_2,
			k1_4,
			k1_5,
			k1_8,
			k1_10,
			k1_16,
			k1_20,
			k1_30,
			k1_40,
			k1_50,
			k1_100,
			k2_1,
			k4_1,
			k8_1,
			k10_1,
			k100_1,
			k1000_1,
			k1and1_2in_1ft
		}

		public enum ShadePlotType
		{
			kAsDisplayed,
			kWireframe,
			kHidden,
			kRendered,
			kVisualStyle,
			kRenderPreset
		}

		public enum ShadePlotResLevel
		{
			kDraft,
			kPreview,
			kNormal,
			kPresentation,
			kMaximum,
			kCustom
		}
	}
}
